(define (problem tyre-replacement)
    (:domain tyre-replacement)
    (:objects
        jack pump wrench boot - container
        hub1 hub2 hub3 hub4 hub5 hub6 hub7 hub8 - hub
        nut1 nut2 nut3 nut4 nut5 nut6 nut7 nut8 - nut
        flatTyre1 flatTyre2 flatTyre3 flatTyre4 flatTyre5 flatTyre6 flatTyre7 flatTyre8 - flatTyre
        intactTyre1 intactTyre2 intactTyre3 intactTyre4 intactTyre5 intactTyre6 intactTyre7 intactTyre8 - intactTyre
    )
    (:init
        (agentHas jack)
        (agentHas pump)
        (agentHas wrench)
        (inside jack boot)
        (inside pump boot)
        (inside wrench boot)
        (inside intactTyre1 boot)
        (inside intactTyre2 boot)
        (inside intactTyre3 boot)
        (inside intactTyre4 boot)
        (inside intactTyre5 boot)
        (inside intactTyre6 boot)
        (inside intactTyre7 boot)
        (inside intactTyre8 boot)
        (unlocked boot)
        (closed boot)
        (notInflated intactTyre1)
        (notInflated intactTyre2)
        (notInflated intactTyre3)
        (notInflated intactTyre4)
        (notInflated intactTyre5)
        (notInflated intactTyre6)
        (notInflated intactTyre7)
        (notInflated intactTyre8)
        (onHub flatTyre1 hub1)
        (onHub flatTyre2 hub2)
        (onHub flatTyre3 hub3)
        (onHub flatTyre4 hub4)
        (onHub flatTyre5 hub5)
        (onHub flatTyre6 hub6)
        (onHub flatTyre7 hub7)
        (onHub flatTyre8 hub8)
        (onGround hub1)
        (onGround hub2)
        (onGround hub3)
        (onGround hub4)
        (onGround hub5)
        (onGround hub6)
        (onGround hub7)
        (onGround hub8)
        (tight nut1 hub1)
        (tight nut2 hub2)
        (tight nut3 hub3)
        (tight nut4 hub4)
        (tight nut5 hub5)
        (tight nut6 hub6)
        (tight nut7 hub7)
        (tight nut8 hub8)
        (fastened hub1)
        (fastened hub2)
        (fastened hub3)
        (fastened hub4)
        (fastened hub5)
        (fastened hub6)
        (fastened hub7)
        (fastened hub8)
    )
    (:goal (and
        (onHub intactTyre1 hub1)
        (onHub intactTyre2 hub2)
        (onHub intactTyre3 hub3)
        (onHub intactTyre4 hub4)
        (onHub intactTyre5 hub5)
        (onHub intactTyre6 hub6)
        (onHub intactTyre7 hub7)
        (onHub intactTyre8 hub8)
        (inflated intactTyre1)
        (inflated intactTyre2)
        (inflated intactTyre3)
        (inflated intactTyre4)
        (inflated intactTyre5)
        (inflated intactTyre6)
        (inflated intactTyre7)
        (inflated intactTyre8)
        (tight nut1 hub1)
        (tight nut2 hub2)
        (tight nut3 hub3)
        (tight nut4 hub4)
        (tight nut5 hub5)
        (tight nut6 hub6)
        (tight nut7 hub7)
        (tight nut8 hub8)
        (inside flatTyre1 boot)
        (inside flatTyre2 boot)
        (inside flatTyre3 boot)
        (inside flatTyre4 boot)
        (inside flatTyre5 boot)
        (inside flatTyre6 boot)
        (inside flatTyre7 boot)
        (inside flatTyre8 boot)
        (inside wrench boot)
        (inside jack boot)
        (inside pump boot)
        (closed boot)
    ))
)